package com.yxw.bamboo.task;

import com.yxw.bamboo.core.database.sql.DbLog;
import com.yxw.bamboo.core.database.sql.Host;
import com.yxw.bamboo.core.database.sql.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MonitorTask {

    @Autowired
    Host host;
    @Autowired
    Mock mock;
    @Autowired
    DbLog dbLog;

    @Configuration      //1.主要用于标记配置类，兼备Component的效果。
    @EnableScheduling   // 2.开启定时任务
    public class SaticScheduleTask {
        //3.添加定时任务
        @Scheduled(initialDelay = 4000,fixedDelay = 15*1000)
        //或直接指定时间间隔，例如：5秒
        //@Scheduled(fixedRate=5000)
        private void run() {
            host.refresh();
        }

        //3.添加定时任务
        @Scheduled(initialDelay = 2000,fixedDelay = 10*1000)
        //或直接指定时间间隔，例如：5秒
        //@Scheduled(fixedRate=5000)
        private void joinMock() {
            mock.refresh();
        }

        //3.添加定时任务
        @Scheduled(initialDelay = 1000,fixedDelay = 35*1000)
        //或直接指定时间间隔，例如：5秒
        //@Scheduled(fixedRate=5000)
        private void joinHost() {
            host.pullHostInfo();
        }

        //3.添加定时任务
        @Scheduled(initialDelay = 2000,fixedDelay = 10)
        //或直接指定时间间隔，例如：5秒
        //@Scheduled(fixedRate=5000)
        private void writeDbLog() {
            dbLog.refresh();
        }
    }

}
